<?php
class PaginasController extends AppController {

    var $uses = array("Pagina");
    var $components = array('Email', 'RequestHandler');
    var $helpers = array('CakePtbr.Formatacao', 'Form2');
    var $paginate = array(
        "Pagina" => array(
            "limit" => 30,
            "order" => array(
                "Pagina.id" => "ASC"
            )
        )
    );

    public function index($id = null)
	{
        if(isset($id) && $id != null)
		{
            $this->loadModel("Pagina");
            $paginas = $this->Pagina->find('first', array(
                'conditions' => array('Pagina.situacao' => 'liberado', 'Pagina.id' => $id)
            ));
            if( $paginas ){
                $this->layout = $paginas['Pagina']['layout'];
                $this->set("paginas", $paginas);

                $this->set("layout_titulo", $paginas['Pagina']['titulo']);
                $this->set("layout_descricao", $paginas['Pagina']['descricao']);
                $this->set("layout_palavras", $paginas['Pagina']['palavras']);
            }else{
               $this->Session->setFlash("Página não encontrada!.", 'default', array('class' => 'error-message'));
               $this->redirect(array("controller" => "capa", "action" => "index")); 
            }
        }else{
            $this->Session->setFlash("Página inválida!.", 'default', array('class' => 'error-message'));
            $this->redirect(array("controller" => "capa", "action" => "index"));
        }
    }

    public function panel($id = null)
	{
        if(isset($id) && $id != null)
		{
            $this->loadModel("Pagina");
            $paginas = $this->Pagina->find('first', array(
                'conditions' => array('Pagina.situacao' => 'liberado', 'Pagina.id' => $id)
            ));
            if($paginas)
			{
                $this->layout = $paginas['Pagina']['layout'];
                $this->set("paginas", $paginas);

                $this->set("layout_titulo", $paginas['Pagina']['titulo']);
                $this->set("layout_descricao", $paginas['Pagina']['descricao']);
                $this->set("layout_palavras", $paginas['Pagina']['palavras']);
            }
			else
			{
               $this->Session->setFlash("Página não encontrada!.", 'default', array('class' => 'error-message'));
               $this->redirect(array("controller" => "capa", "action" => "index")); 
            }
        }
		else
		{
            $this->Session->setFlash("Página inválida!.", 'default', array('class' => 'error-message'));
            $this->redirect(array("controller" => "capa", "action" => "index"));
        }
    }
	
	
    public function vagas()
	{
       $this->layout = 'interna';

        $this->paginate = array(
            'limit' => 5,
            'conditions' => array('Pagina.grupo' => 'vaga', 'Pagina.situacao' => 'liberado'),
            "order" => array('Pagina.data' => 'DESC')
        );

        $data = $this->paginate('Pagina');
        $this->set("paginas", $data);
    }
	
	public function pesquisa() {
        $this->layout = 'interna';
        
        if( !isset($this->data['Pesquisa']['conteudo']) ){
            $this->Session->setFlash("Página inválida!.", 'default', array('class' => 'error-message'));
            $this->redirect(array("controller" => "capa", "action" => "index"));
        }

         if( isset($this->passedArgs) ){
            if( isset($this->passedArgs['conteudo']) ){
                $this->data["Pesquisa"]["conteudo"] = $this->passedArgs['conteudo'];
                unset($this->passedArgs['conteudo']);
            }
         }

        if( $this->data["Pesquisa"]["conteudo"] != null ){

            $palavra = "%{$this->data["Pesquisa"]["conteudo"]}%";
            $this->set("conteudo", $this->data["Pesquisa"]["conteudo"]);
            $this->paginate = array(
                'limit' => 5,
                'conditions' => array(
                    "OR" => array(
                        'Pagina.titulo LIKE '=> $palavra,
                        'Pagina.conteudo LIKE '=> $palavra
                        )
                ),
            );
        }

        $data = $this->paginate('Pagina');
        $this->set("paginas", $data);
        $this->set("conteudo", $this->data["Pesquisa"]["conteudo"]);

         if( isset($this->data["Pagina"]["conteudo"]) && !empty($this->data["Pagina"]["conteudo"]) )
             $this->passedArgs = $this->data['conteudo'];

    }

     public function noticias() {
        $this->layout = 'interna';

        $this->paginate = array(
            'limit' => 5,
            'conditions' => array('Pagina.grupo' => 'notícia', 'Pagina.situacao' => 'liberado'),
            "order" => array('Pagina.data' => 'DESC')
        );

        $data = $this->paginate('Pagina');
        $this->set("paginas", $data);
    }
	
	function geraSenha($tamanho = 8, $maiusculas = true, $numeros = true, $simbolos = false)
		{
			$lmin = 'abcdefghijklmnopqrstuvwxyz';
			$lmai = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
			$num = '1234567890';
			$simb = '!@#$%*-';
			$retorno = '';
			$caracteres = '';
			
			$caracteres .= $lmin;
			if ($maiusculas) $caracteres .= $lmai;
			if ($numeros) $caracteres .= $num;
			if ($simbolos) $caracteres .= $simb;
			
			$len = strlen($caracteres);
			for ($n = 1; $n <= $tamanho; $n++)
			{
				$rand = mt_rand(1, $len);
				$retorno .= $caracteres[$rand-1];
			}
			return $retorno;
		}
		
		function novaseguranca()
		{
			$valor_seguranca = $this->geraSenha(5, true, true, false);
			$this->set('valor_seguranca', $valor_seguranca);
			//echo $valor_seguranca;
		}
    
    function faleconosco()
	{
        $this->layout = 'interna';
		
		$this->novaseguranca();		
		
		if(!empty($this->data))
		{
            $confirma = false;
            // valida os dados enviados pelo form
                    if(isset($this->data['FaleConosco']['assunto']) &&
					 isset($this->data['FaleConosco']['email']) &&
					 isset($this->data['FaleConosco']['nome']) &&
					 isset($this->data['FaleConosco']['mensagem']) &&
					 !empty($this->data['FaleConosco']['assunto']) &&
					 !empty($this->data['FaleConosco']['email']) &&
					 !empty($this->data['FaleConosco']['nome']) &&
					 !empty($this->data['FaleConosco']['mensagem']))
					{
                        $confirma = true;
                    }
					else
					{
                        $this->Session->setFlash("Erro: Preencha os campos corretamente", 'default', array('class' => 'error-message'));
						
						
                    }
					
                    if($confirma == true)
					{
                        // envia mensagem para o cliente e para administração do site
                       $this->data['FaleConosco']['code_validation'] = strtoupper($this->data['FaleConosco']['code_validation']);
						$this->data['FaleConosco']['code'] = strtoupper($this->data['FaleConosco']['code']);
						
						if($this->data['FaleConosco']['code'] == $this->data['FaleConosco']['code_validation'])
						{
							$this->_notificarEmpresaCliente();
						}
						else
						{
							$this->Session->setFlash("Código não confere.", 'default', array('class' => 'error-message'));
							
							
						}
					}
		}
    }

    function security_img()
	{
        App::import('Vendor','captcha',array('file'=>'captcha.class.php'));
    }

    function _notificarEmpresaCliente()
	{
		$this->set("tipo", "Fale Conosco");
		
		$this->set('assunto', $this->data['FaleConosco']['assunto']);
		$this->set('nome', $this->data['FaleConosco']['nome']);
		$this->set('telefone', $this->data['FaleConosco']['telefone']);
		$this->set('email', $this->data['FaleConosco']['email']);
		$this->set('mensagem', $this->data['FaleConosco']['mensagem']);
		
		$assunto = $this->data['FaleConosco']['assunto'];
		$nome = $this->data['FaleConosco']['nome'];
		$telefone = $this->data['FaleConosco']['telefone'];
		$email = $this->data['FaleConosco']['email'];
		$mensagem = $this->data['FaleConosco']['mensagem'];
		
		$this->loadModel('Modulo');
        $smtp_email = $this->Modulo->read('Modulo.valor', 1);
        $smtp_usuario = $this->Modulo->read('Modulo.valor', 4);
        $smtp_senha = $this->Modulo->read('Modulo.valor', 5);
        $smtp_host = $this->Modulo->read('Modulo.valor', 2);
        $smtp_port = $this->Modulo->read('Modulo.valor', 32);

        $smtp_email = $smtp_email['Modulo']['valor'];
        $smtp_usuario = $smtp_usuario['Modulo']['valor'];
        $smtp_senha = $smtp_senha['Modulo']['valor'];
        $smtp_host = $smtp_host['Modulo']['valor'];
        $smtp_port = $smtp_port['Modulo']['valor'];
		
		$this->loadModel('Comunicacoes');
        $content_email = $this->Comunicacoes->read(null, 1); // Para Administrador

	   $this->Email->smtpOptions = array(
	   'port'=>$smtp_port,
	   'timeout'=>'30',
	   'host' => $smtp_host,
	   /*'username'=>'Admin@localhost',
	   'password'=>'',*/
	   'client' => 'samuel'
		);
		
		$this->Email->delivery = 'smtp';
		
		$this->Email->to = $smtp_email;
		
		$this->Email->subject = 'All Brazil - Fale Conosco ('.$this->data['FaleConosco']['assunto'].')';
		$this->Email->replyTo = $this->data['FaleConosco']['email'];
		$this->Email->from = $this->data['FaleConosco']['nome'].' <'.$this->data['FaleConosco']['email'].'>';
		$this->Email->layout = 'contato';
		$this->Email->template = 'default';
		$this->Email->sendAs = 'html';
		$content = $content_email['Comunicacoes']['texto'];
		
		$content=str_replace("[%%Usuario.nome%%]","$nome", $content);
		$content=str_replace("[%%Usuario.assunto%%]","$assunto",$content);
		$content=str_replace("[%%Usuario.email%%]","$email",$content);
		$content=str_replace("[%%Usuario.telefone%%]","$telefone",$content);
		$content=str_replace("[%%Usuario.mensagem%%]","<div style='width: 500px;'>$mensagem</div>",$content);
		
		$this->set("content", $content);
		
        if($this->Email->send())
		{
            // Para o cliente
            $this->Email->reset();
			$content_email = $this->Comunicacoes->read(null, 2); // Para Cliente
            $this->Email->smtpOptions = array(
		   'port'=>$smtp_port,
		   'timeout'=>'30',
		   'host' => $smtp_host,
		   /*'username'=>'Admin@localhost',
		   'password'=>'',*/
		   'client' => 'samuel'
			);
		
			$this->Email->delivery = 'smtp';
			
			$this->Email->to = $email;
			
			$this->Email->subject = 'All Brazil ('.$this->data['FaleConosco']['assunto'].')';
			$this->Email->replyTo = $this->data['FaleConosco']['email'];
			$this->Email->from = $this->data['FaleConosco']['nome'].' <'.$this->data['FaleConosco']['email'].'>';
			$this->Email->layout = 'contato';
			$this->Email->template = 'default';
			$this->Email->sendAs = 'html';
			$content = $content_email['Comunicacoes']['texto'];
			
			$content=str_replace("[%%Usuario.nome%%]","$nome", $content);
			$content=str_replace("[%%Usuario.assunto%%]","$assunto",$content);
			$content=str_replace("[%%Usuario.email%%]","$email",$content);
			$content=str_replace("[%%Usuario.telefone%%]","$telefone",$content);
			$content=str_replace("[%%Usuario.mensagem%%]","$mensagem",$content);
			
			$this->set("content", $content);
			$this->Email->send();
			/*$this->set('smtp-errors', $this->Email->smtpError);
			echo($this->Email->smtpError);*/
		

			$this->Session->setFlash("Sua Mensagem foi enviada com sucesso. Em breve entraremos em contato", 'default', array('class' => 'confirmation-message'));
			/*echo("<pre>");
			print_r($this->data);
			echo("</pre>");*/
			//$this->redirect(array("controller" => "capa", "action" => "index"));
        }
		else
		{
			$this->Session->setFlash("Desculpe, ocorreu uma falha no envio de sua mensagem", 'default', array('class' => 'error-message'));
        }
    }
}
?>